package com.example.demo.dao;

import com.example.demo.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import javax.transaction.Transactional;
import java.util.List;

public interface MyJpaDao extends JpaRepository<Student,Integer> {
//    使用方法名关键字方式实现：查询班级ID值等于1的学生集合
    List<Student> findByClassId(int id);
//    在getStuByAId方法上使用HQL实现：根据班级id查询该班级的学生集合（需要使用@Query注解）
    @Query("select  c from stu c where c.classId=?1")
    List<Student> getStuByAId(int id);

//    在updateClass方法上使用HQL或SQL实现：根据学生id修改学生名称（需要使用@Transactional、@Modifying、@Query注解）

//    HQL
    @Transactional
    @Modifying
    @Query("update stu c set c.name=?2 where c.id=?1")
    int updateStu(int id,String name);
//    SQL
    @Transactional
    @Modifying
    @Query(value = "update stu set name=?2 where id=?1" , nativeQuery = true)
    int updateStus(int id,String name);

}
